# 定义功能界面函数
def info_print():
    print("请选择功能-----------")
    print('添加学员')
    print('删除学员')
    print('修改学员')
    print('查询学员')
    print('显示所有学员')
    print('退出系统')

# 等待存储所有学员信息
info = []

# 添加学员的函数
def  add_info():
    '''
    添加学员函数
    :return:
    '''
    # 1. 用户输入学员信息
    new_id = input('请输入学号：')
    new_name = input('请输入姓名：')
    new_tel = input('请输入手机号码：')

    # 2. 判断是否添加学员，如果姓名存在则报错提示，如果姓名不存在则添加
    # 声明 info是全局变量
    global info
    # 2.1 如果学员姓名存在则报错提示，判断用户输入的姓名是否和列表里面字典的 name 对应的值想等 提示
    for i in info:
        if new_name == i['name']:
            print('此用户已存在！')
            return #退出当前函数，后面添加信息的代码不执行！！！


    # 2.2 如果姓名不存在则添加到字典
    info_dict = {}
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    #print(info_dict)

    # 把字典追加到列表info
    info.append(info_dict)
    print(info)

# 删除学员信息的函数
def del_info():
    """
    删除学员信息函数
    :return:
    """
    global info
    # 1. 用户输入需要删除的学员姓名
    del_name = input('请输入需要删除学员的姓名：')

    # 2. 判断目标学员是否存在，如果存在则删除，如果不存在则提示“不存在”
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
    else: #如果for正常执行（没有被bread终止），则执行else内的语句
        print('该学员不存在！')

    #print(info)

#修改学员信息
def xiugai_info():
    '''
    修改学员信息函数
    :return:
    '''
    global info
    #1. 用户输入需要修改的学员姓名
    xiugai_name = input("请输入需要修改的学员姓名：")

    #2. 判断学员是否存在，如果存在则修改该学员手机号，如果不存在则提示
    for i in info:
        if xiugai_name == i['name']:
            new_tel = input("请输入新的手机号：")
            i['tel'] = new_tel
            break
    else: # 如果for正常执行（没有被bread终止），则执行else内的语句
        print('该学员不存在！')

    # print(info)

# 查询学员函数
def chaxun_info():
    """
    查询学员函数
    :return:
    """
    # 1. 用户输入需要查询的学员姓名
    chaxun_name = input("请输入需要查询学员的姓名：")

    # 2. 判断该学员是否存在，如存在则打印学员信息，如不存在则提示用户不存在！
    global info
    for i in info:
        if chaxun_name == i['name']:
            print("查找到的学员的信息如下：")
            print(f"该学员学号：{i['id']}，姓名：{i['name']}，电话：{i['tel']}")
            break
    else:
        print('该学员不存在！')

# 显示全部学员
def all_info():
    """
    查询显示所有学员函数
    :return:
    """
    print('学号\t姓名\t手机号')
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')

# 功能需要循环使用，直到用户输入6退出系统，才退出循环
while True:
    # 1. 显示功能界面
    info_print()

    # 2. 用户输入功能序号
    user_num = int(input("请输入功能序号："))

    # 3. 根据用户输入的不同序号，执行不同的功能（函数）
    if user_num ==1:
        #print('添加')
        add_info()
    elif user_num == 2:
        #print('删除')
        del_info()
    elif user_num == 3:
        # print('修改')
        xiugai_info()
    elif user_num == 4:
        # print('查询')
        chaxun_info()
    elif user_num == 5:
        # print('查询')
        all_info()
    elif user_num == 6:
        # print('退出系统')
        exit_flag = input('确定退出系统吗？yes/no：')
        if exit_flag == 'yes':
            break
    else:
        print('输入的功能序号有误！')

